#include <pubbase.h>

/* 
 * 输入参数必输为gbk编码，不会将汉字截断
 */
void GetNBit(char * epczSrc, int n, char * opczDst)
{
    int ilen = 0;
    char * psrc = epczSrc;
    while(*psrc && ilen < n)    {
        if(*psrc < 0)   {
            if(ilen == n - 1)   {
                break;
            }
            ilen +=2 ;
            psrc += 2;
        }
        else    {
            ilen += 1;
            psrc += 1;
        }
    }
    if(opczDst != epczSrc)  {
        memcpy(opczDst, epczSrc, ilen);
    }
    opczDst[ilen] = '\0';
}

void GetNWord(char * epczSrc, int n, char * opczDst)
{
    int icnt = 0, ilen = 0;
    char * psrc = epczSrc;

    while(*psrc && icnt < n)    {
        if(*psrc < 0)   {
            psrc += 2;
            ilen += 2;
        }
        else    {
            psrc += 1;
            ilen += 1;
        }
        icnt += 1;
    }
    if(opczDst != epczSrc)  {
        memcpy(opczDst, epczSrc, ilen);
    }
    opczDst[ilen] = '\0';
}
